#include "showimagedialog.h"
#include "ui_showimagedialog.h"

#include <QPainter>     // 画家类，绘制图片
#include <QImage>       // 图片类
#include <QDebug>

ShowImageDialog::ShowImageDialog(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::ShowImageDialog)
    , m_image(0)
{
    ui->setupUi(this);
}

ShowImageDialog::~ShowImageDialog()
{
    delete ui;
}

void ShowImageDialog::on_m_btnPrev_clicked()
{
    if(--m_image < 0)
        m_image = 1;
    update();   // 触发绘图事件
}


void ShowImageDialog::on_m_btnNext_clicked()
{
    if(++m_image > 1)
        m_image = 0;
    update();   // 触发绘图事件
}

// 绘图事件处理函数(虚函数)
void ShowImageDialog::paintEvent(QPaintEvent *)
{
    // qDebug("ShowImageDialog::paintEvent");
    // 1. 创建画家对象
    QPainter painter(this);     // 在this指针，也就是当前父窗口进行绘制

    // 2. 绘制图像的所在矩形区域
    QRect rect = ui->frame->frameRect();
    // qDebug() << "平移前: " << rect;
    // 平移一下，让rect和painter使用相同的坐标值
    rect.translate(ui->frame->pos());
    // qDebug() << "平移前: " << rect;

    // 3. 构建需要的绘制对象
    QImage image(":/image/" + QString::number(m_image) + ".png");
    // QImage image(":/image/0.png");

    // 4. 使用painter将image图片画到rect上
    painter.drawImage(rect, image);
}

